-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: ADR - Move Rosetta to standalone repository #16394
Conversation
FYI: @julienrbrt feel free to share your thoughts on the adr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- What will be the repo?
- Does this mean as well removing the possibility to include rosetta directly in the binary?
- Same comment as here: refactor: ADR - Move Rosetta to standalone repository #16392 (comment), have you investigated how it will play with the vanity url? The current tags should stay available and will be hosted here, and the new tags will be pointing to the new repo.
Want to echo what Julien said. It seems there is a change in design that is not being articulated here. Can we get an understanding of what you have in mind for rosetta? Is it standalone or does it continue to be imported into chains. There is mention of plug-in based system, what are the trade offs to doing reflection based. Currently Rosetta is being imported into the sdk so it's not entirely standalone as it's imported into the sdk and apps. We separated it into a separate go.mod for maintenance reasons but didn't put it in a separate repo so it's kept up to date with the latest sdk changes. |
Hi @julienrbrt ! Thx for the observations!
|
|
@@ -0,0 +1,67 @@ | |||
# ADR 606: Rosetta standalone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# ADR 606: Rosetta standalone | |
# ADR 066: Rosetta Standalone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks mate!
Hi @tac0turtle we appreciate you jumping into the discussion!
What do you think is unclear or not being correctly articulated? glad to expand over your concerns
Rosetta will always run as a service independently of the app/node, It can be imported into chains binaries with the
Well we made an ADR for plugins as julien mentioned. Using reflection is desirable but due to chains running on older versions of cosmos. we believe it will take a lot of time until chains perform the upgrade, implement the optional service for reflection and adopt rosetta. Not even cosmos-hub chain node is running neither on 0.46 nor on 0.47. We prioritized usability and adoption, since the reflection solution is already implemented on hudl tool and the proposed plugin solution is straight forward / simple, we believe implementing reflection shouldn't be a big issue
Right, Rosetta is imported and loaded through the function mentioned before and nothing more (kudos tho whoever came with such decoupled approach), same as for other cosmos chains, so switching repos shouldn't represent a risk of breaking stuff. The main reason (as I understand it) for rosetta being inside a node app is so it could have access to the app interface registries and codecs, but we solved that issue with the plugins things, so we don't really see a reason why the app should have rosetta inside if it can perfectly run well outside of it. |
@julienrbrt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK.
I am still not sure however this is a good argument, as they all the changes that are made in roestta on main is for fitting the SDK APIs. And the working / released versions of rosetta are based on a release branch.
Such changes can cause mismatches
in dependencies, or unexpected behaviour that needs to be addressed down the line.
this doesnt really make sense to me, why does a chain need to be on 0.46 or 0.47 to use reflection? Grpc Reflection is native to grpc and is live on all chains already. Im not the biggest fan of the plugin design as it doesnt scale. Which plugins will be supported in the repo? We can move it to a new repo but rosetta is a low priority for us in terms of other things that need to be done. Also with moving it to a new repo i guess you are agreeing to keep it up to date at all times when releases come out right? |
Rosetta connects to a cosmos node, even when the node "depends" on rosetta because it is part of the CLI, Rosetta actually consumes the node, not the other way around, we have seen that in some cases the Rosetta sub repo suffers from breaking changes on non released things due to refactors or mass implementation, we would like to avoid that
Well, you are right about reflection and scaling. what I meant is that hubl does the job of getting the interfaces and their respective implementation through reflection but it is not compatible with old versioning, I didn't want to repeat the efforts, but now I'm exploring on reflection to achieve it.
We are working on onbiarding Cosmos-hub, Osmosis and Evmos to test different ecosystems, after that we would provide guidelines for interested zones on how to make their own plugins.
The main objective behind the new repo is to keep it well maintained. |
maybe for all future versions we do reflection, So anything that uses .47+ gets reflection everything before doesnt get anything. We shouldn't spend much time fixing the current state if the next state will be much better.
these wont be merged into the repo right? Ideally zondax time is not spent on adding plugins and other things that are needed for users. Rosetta isnt used by many. |
if the plan is to build rosetta as a stand alone thing that apps dont import then this is good, but its still unclear to me which direction this is being taken. Id prefer this is something that apps dont need to import and can just start and it works |
talked to @jleni. We can spin it out, the gotcha is we have to change the documenetation to mention rosetta as a proxy and there isnt a need to import it into the rootcmd anymore, Ill close this ADR as its not needed, mainly needed a quick discussion |
Description
Closes: #16276
Epic and Discussion
The goal is to move Rosetta tool under
cosmos-sdk/tools/
folder to a separated repo, in order to have a better scope, a cleaner way to maintain the code and manage all Rosetta efforts.Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if API or client breaking changeCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
in the type prefix if API or client breaking change